package com.lingnan.feign;

import com.lingnan.dto.NotificationDTO;
import com.lingnan.entity.dto.BatchNotificationDTO;
import com.lingnan.entity.dto.InterviewInvitationRequest;
import com.lingnan.entity.vo.Result;
import jakarta.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient(value = "notification-service", path = "/notification")
public interface NotificationFeignClient {
    /**
     * 发送面试邀请通知
     */
    @PostMapping("/interview-invitation")
    public Result<Void> sendInterviewInvitation(@RequestBody @Valid InterviewInvitationRequest request);


    /**
     * 发送单个通知
     */
    @PostMapping("/send")
    public Result<Void> sendNotification(@RequestBody NotificationDTO notificationDTO);
    /**
     * 批量发送通知
     */
    @PostMapping("/batch-send")
    Result<Void> batchSendNotification(@RequestBody BatchNotificationDTO batchDTO);

    /**
     * 批量发送通知（NotificationDTO列表）
     */
    @PostMapping("/batch-send-list")
    Result<Void> batchSendNotificationList(@RequestBody List<NotificationDTO> notifications);
}
